package pack1;

//定义一个父类(animal)
class animal{
    public String name;
    public String fur;
    public int age;
    animal (){
        System.out.println("父类的无参构造函数");
    }

    public animal(String name, String fur, int age) {
        this.name = name;
        this.fur = fur;
        this.age = age;
        System.out.println("父类中三个参数的构造函数");
    }

    public void eat(){
        System.out.println(this.name+"正在进食");
    }
    public void out(){
        System.out.println(this.name+"正在拉屎");
    }
    public static void fun(){
        System.out.println("父类中的无参静态成员方法fun");
    }
}

//定义一个子类(cat)
class cat extends animal{
    private String food;
    cat(){
        System.out.println("cat子类的无参构造函数");
    }
    public void mew(){
        System.out.print(super.name+"正在喵喵叫  ");
        System.out.println(super.name+"爱吃"+this.food);
    }

    public cat(String name, String fur, int age, String food) {
        //使用父类的成员变量时先调用父类的构造函数
        super(name, fur, age);
        this.food = food;
        System.out.println("子类中带四个参数的构造函数(继承了父类的三个成员变量)");
    }
}
public class javademo1 {
    public static void main(String[] args) {
        cat cat1=new cat("大黄","橘黄色",11,"小鱼干");
        //通过子类对象访问父类的eat方法，发现子类对象可直接访问父类中的成员方法
        cat1.eat();
        //调用自己类中的mew方法
        cat1.mew();
        //通过子类对象访问父类的eat方法
        cat1.out();
        //通过子类对象调用父类的静态成员方法
        cat1.fun();

    }
}
